package org.gdtc.storefront.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.gdtc.storefront.entity.Problemcommodity;

public interface ProblemcommodityMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Problemcommodity record);

    Problemcommodity selectByPrimaryKey(Integer id);

    List<Problemcommodity> selectAll();

    int updateByPrimaryKey(Problemcommodity record);

    /**
     * 把查询出来的商品添加到问题仓库
     * @param storeid  分店ID
     * @param commodityid  商品ID
     * @param saleafterid  售后ID
     * @param stock        问题商品数量
     * @param jointime     入库时间
     * @param because      原因
     * @param orderid      订单ID
     *                     马帅琦
     * @return
     */
    int InsProblem(@Param("storeid") Integer storeid,
                   @Param("commodityid") Integer commodityid,
                   @Param("saleafterid") Integer saleafterid,
                   @Param("stock") Integer stock,
                   @Param("jointime") String jointime,
                   @Param("because") String because,
                   @Param("orderid") Integer orderid);


    /**
     * 根据分店查询所有问题仓库
     * state=0 未处理商品
     * @param storeid
     * @return
     * 马帅琦
     */
    List<Problemcommodity>QueryProblemtoState(@Param("storeid") Integer storeid);

    /**
     * 处理问题商品
     * state=2
     * @param state 状态
     * @param id 问题商品ID
     * @return
     * 马帅琦
     */
    int UpdProblemtoState(@Param("state") Integer state,
                          @Param("id") Integer id);

    /**
     * 查询出问题商品的个数
     * @param id
     * @return
     * 马帅琦
     */
    int QueryStock(@Param("id") Integer id);

    /**
     * 查询出正常商品的个数
     * @param id 问题商品ID
     * @return
     * 马帅琦
     */
    int QueryCommtoStock(@Param("id") Integer id);

    /**
     * 查询商品ID
     * @param id
     * @return
     */
    int QueryCommodityId(@Param("id") Integer id);

    /**
     * 根据状态筛选问题商品仓库
     * @param state
     * @param storeid
     * @return
     */
    List<Problemcommodity> QueryProblemtoone(@Param("state") Integer state,
                                             @Param("storeid") Integer storeid);
}